#include "main.h"
#include <stdlib.h>

using namespace std;
using namespace cv;

int main()
{
	
// 	Mat test = imread("data/dataset2/Result/dep-44e.bmp", CV_LOAD_IMAGE_GRAYSCALE);
// 	Mat dst(cv::Size(test.rows, test.cols), CV_8U);
// 
// 	Mat src(cv::Size(test.rows, test.cols), CV_8U);
// 	cv::Canny(test, src, 60, 180, 3);
// 
// 	int type = MORPH_RECT;
// 	int size = 1;
// 
// 	Mat element = getStructuringElement(type,
// 		Size(2 * size + 1, 2 * size + 1),
// 		Point(size, size));
// 
// 	dilate(src, dst, element);
// 	erode(dst, src, element);
// 	imshow("erode", src);
// 	waitKey(0);
// 	imwrite("data/dataset2/dep-44d.bmp", src);

	//dilate(src, dilation_dst, element);

 	Handler hndlr;
// 	//hndlr.ApplyBackgroundSubtraction();
	string source = "data/dataset1/NewDep/dep-";
	string result = "data/dataset1/Result/dep-";
	hndlr.ApplyWaterFilling(source, result, 0, 2838);

//	hndlr.GetResults("data/dataset2/Heads/Hdep-", "data/dataset2/Result/dep-", 0, 1500);

	//PathBuilder pb;
 
	//pb.BuildPath("data/dataset2/Result/dep-", 1043);

	return 0;
}


// int main()
// {
// 	PathBuilder pb;
// 
// 	pb.BuildPath("data/dataset2/Result/dep-", 36);
// 	//pb.GetSynteticDataForWFA();
// 
// 	return 0;
// }




// 
// int main()
// {
// 	try
// 	{
// 		string name = "depth";
//  		string file = "d.png";
// 		cv::Mat a = cv::imread(file, CV_LOAD_IMAGE_GRAYSCALE);
// 		cv::imshow(name, a);
// 		cv::waitKey(0);
// 
// 	//	return 0;
// 		int t = 0;
// 		uchar d = 0;
// 		for (int i = 0; i < a.rows; ++i)
// 		{
// 			for (int j = 0; j < a.cols; ++j)
// 			{
// 				t += a.at<uchar>(i, j);
// 				d += a.at<uchar>(i, j);
// 			}
// 		}
// 		cout << t << " " << d << " " << static_cast<int>(d);
// 		cv::imshow(name, a);
// 		cv::waitKey(0);
// 
// // 		VideoCapture cap(0); // open the default camera
// // 		if (!cap.isOpened())  // check if we succeeded
// // 			return -1;
// // 		cv::Size s;
// // 		s.height = 480;
// // 		s.width = 640;
// // 		file = "data/test.avi";
// // 		VideoWriter wr = VideoWriter(file, CV_FOURCC_PROMPT, 15.0, s);
// // 		
// // 		namedWindow(name, 1);
// // 		Mat edges;
// // 		for (;;)
// // 		{
// // 			Mat frame;
// // 			cap >> frame; // get a new frame from camera
// // 			cvtColor(frame, edges, CV_BGR2GRAY);
// // 			GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);
// // 			Canny(edges, edges, 0, 30, 3);
// // 			imshow(name, edges);
// // 			wr << edges;
// // 			if (waitKey(30) >= 0) break;
// // 		}
// 	}
// 	catch (string er)
// 	{
// 		cout << er << endl;
// 	}
// 	return 0;
// 
// }